Page({
  data: {
    currentTab: 0, // 当前选中的标签页
    scrollTop: 0, // 滚动位置
    demandViewList: [], // 约拍浏览记录列表
    workViewList: [], // 作品浏览记录列表
    page: 1, // 当前页数
    pageSize: 10, // 每页展示的数据数
    isLoading: false, // 加载状态，防止重复触发
    isNoMoreData: false // 是否没有更多数据
  },

  onLoad() {
    this.loadViewList(0); // 默认加载约拍浏览记录
  },

  // 切换标签页
  switchTab(e) {
    const index = e.detail.index; // van-tabs 的 change 事件返回的 index 在 e.detail 中
    this.setData({
      currentTab: index,
      scrollTop: 0, // 切换时重置滚动位置
      page: 1, // 重置页数为1
      isNoMoreData: false // 重置没有更多数据的状态
    });

    // 检查缓存中是否有数据
    const cacheKey = index === 0 ? 'demandViewList' : 'workViewList';
    const cachedData = wx.getStorageSync(cacheKey);

    if (cachedData && cachedData.length > 0) {
      // 如果有缓存数据，直接使用缓存数据
      if (index === 0) {
        this.setData({ demandViewList: cachedData });
      } else {
        this.setData({ workViewList: cachedData });
      }
    } else {
      // 如果没有缓存数据，发起请求
      this.loadViewList(index);
    }
  },

  // 加载浏览记录
  loadViewList(contentType) {
    if (this.data.isLoading || this.data.isNoMoreData) {
      console.log('阻止请求: isLoading =', this.data.isLoading, 'isNoMoreData =', this.data.isNoMoreData);
      return; // 如果正在加载或没有更多数据，直接返回
    }
    this.setData({ isLoading: true }); // 设置加载状态为 true

    const { page, pageSize } = this.data;
    wx.request({
      url: 'http://localhost:8080/user/common/view',
      method: 'GET',
      header: {
        token: wx.getStorageSync('userInfo').data.token, // 携带 token
      },
      data: {
        page,
        pageSize,
        contentType: contentType // 0: 约拍, 1: 作品
      },
      success: (res) => {
        const { total, records } = res.data.data;
        console.log('原始数据:', records); // 打印原始数据
        const processedRecords = records.map(item => {
          const urlList = item.urlList ? item.urlList.split(',') : [];
          return {
            ...item,
            tags: item.tags ? item.tags.split(',') : [],
            UrlList: urlList
          };
        });
        console.log('处理后的数据:', processedRecords); // 打印处理后的数据

        const cacheKey = contentType === 0 ? 'demandViewList' : 'workViewList';
        wx.setStorageSync(cacheKey, processedRecords); // 将数据缓存到本地

        if (contentType === 0) {
          this.setData({
            demandViewList: page === 1 ? processedRecords : this.data.demandViewList.concat(processedRecords),
            total,
            isNoMoreData: processedRecords.length < pageSize
          }, () => {
            console.log('约拍浏览记录更新成功:', this.data.demandViewList); // 打印更新后的数据
          });
        } else if (contentType === 1) {
          this.setData({
            workViewList: page === 1 ? processedRecords : this.data.workViewList.concat(processedRecords),
            total,
            isNoMoreData: processedRecords.length < pageSize
          }, () => {
            console.log('作品浏览记录更新成功:', this.data.workViewList); // 打印更新后的数据
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '加载失败，请重试',
          icon: 'none'
        });
      },
      complete: () => {
        this.setData({ isLoading: false }); // 无论成功或失败，都重置加载状态
      }
    });
  },

  // 上拉触底事件
  onReachBottom() {
    if (this.data.isLoading || this.data.isNoMoreData) {
      wx.showToast({
        title: this.data.isNoMoreData ? '没有更多数据了' : '正在加载中...',
        icon: 'none'
      });
      return;
    }
    this.setData({ page: this.data.page + 1 });
    this.loadViewList(this.data.currentTab); // 根据当前标签页加载更多
  },

  // 下拉刷新事件
  onPullDownRefresh() {
    this.setData({
      page: 1,
      isNoMoreData: false
    });
    this.loadViewList(this.data.currentTab); // 强制重新加载数据
    wx.stopPullDownRefresh(); // 停止下拉刷新动画
  },

  // 跳转到详情页
  navigateToDetail(event) {
    const id = event.currentTarget.dataset.id; // 获取帖子ID
    const { currentTab } = this.data; // 获取当前选中的标签页

    wx.getStorage({
      key: 'isLogin',
      success: (res) => {
        if (res.data) {
          // 已登录，根据 currentTab 跳转到不同的详情页
          if (currentTab === 0) {
            // 约拍（需求单）详情页
            wx.navigateTo({
              url: `/demand/pages/demand_detail/demand_detail?demandId=${id}`
            });
          } else if (currentTab === 1) {
            // 作品详情页
            wx.navigateTo({
              url: `/work/pages/work_detail/work_detail?workId=${id}`
            });
          }
        } else {
          // 未登录，跳转到登录页
          wx.navigateTo({
            url: '/pages/login/login'
          });
        }
      },
      fail: () => {
        // 未登录，跳转到登录页
        wx.navigateTo({
          url: '/pages/login/login'
        });
      }
    });
  }
});
